#ifndef LOCATION_H_
#define LOCATION_H_

typedef int t_row;
typedef int t_col;
typedef int t_count;

/*
    struct for representing locations in the grid.
*/
struct Location
{
    t_row row;
    t_col col;

    Location(): row(0), col(0) {};
    //Location(const Location& r): row(r.row), col(r.col) {};
    Location(t_row r, t_col c) : row(r), col(c) {};
    //Location& operator = (const Location& r){ row = r.row; col=r.col ; return *this;};
    bool operator == (const Location& rhs) const {return row == rhs.row && col == rhs.col;}
    bool operator != (const Location& rhs) const {return row != rhs.row || col != rhs.col;}
    bool operator < (const Location& rhs) const {return (row == rhs.row) ? col < rhs.col : row < rhs.row;}
};

typedef Location Ant;
typedef Location Food;
typedef Location Task;
typedef Location Hill;


#endif //LOCATION_H_
